package 真题;
/**
 * @author： li
 * @date： 2022-03-09 22:22
 * @version 1.0
 */
import java.util.HashSet;
import java.util.Scanner;
public class 货物摆放 {
    public static void main(String[] args) {
        long n;
        Scanner sc = new Scanner(System.in);
        n= sc.nextLong();
//        System.out.println(n/2);
        HashSet<Long> hashSet = new HashSet<>();
        //开平方求所有约数
        for(long i=1;i<=Math.sqrt(n);i++){
            if (n%i==0){
                hashSet.add(i);
                hashSet.add(n/i);
            }
        }
        int count=0;
       for(long i:hashSet)
           System.out.println(i+" ");
        for(long i:hashSet){
            long L=i;
            for(long j:hashSet){
                if(L* j >n) continue;
                for(long k:hashSet){
                    long H=k;
                    if(L*j*H==n)
                        count++;
                }
            }
        }
        System.out.println(count);
    }
}
/*
摘抄自网络：
* 暴力枚举尝试使用两层循环求解（两层循环表示长和宽），高可以使用n除以长与宽的乘积，
* 如果长和宽的乘积能够被n整除那么说明当前的长宽高的乘积最终是等于n的，计数加1，
* 但是果不其然n的数字太大了两层循环没有计算出结果，后面在比赛的时候想到使用其他的方法。
* 观察n = 4的时候是可以被分解成为6种情况的而且长宽高都是n的约数，
* 所以我可以先求解出n = 2021041820210418的所有约数。
* 我们知道在判断一个数字n是否是素数的时候只要判断2到n的平方根的范围的数字即可（实际上也是判断当前的因子是否可以被当前的数字整除），
* 所以基于这个想法想到求解约数的时候可以在[1, sqrt(n)]的范围内求解，
* 对于sqrt(n)后面的约数可以直接使用n / i即可，
* 这样通过开方之后求解约数还是可以计算出结果的（开方之后大概为10 ^ 8，对于一般的计算机10 ^ 8还是可以计算出来的），
* 计算出n的约数之后，接下来暴力求解即可，我们可以使用两层循环表示长和宽，高则使用n除以长和宽的乘积表示，
* 这样最终就可以计算出结果，最终答案为：2430
 */